package tedu.api.reflect;

import java.lang.reflect.Method;
import java.util.Scanner;

/**
 * 使用反射机制调用方法
 */
public class ReflectDemo4 {
    public static void main(String[] args) throws Exception {
        Person p = new Person("李四",55);
        p.sayHello();

        Scanner scan = new Scanner(System.in);
        while(true){
            System.out.println("请输入类名");
            String className = scan.nextLine();
            System.out.println("请输入方法名");
            String methodName = scan.nextLine();
            //实例化
            //Class cls = Class.forName("tedu.api.reflect.Person");
            Class cls = Class.forName(className);
            Object obj = cls.newInstance();//Object obj = new Person();
            //调用方法
            //1获取待调用方法的方法对象
            //Method method = cls.getMethod("sayHello");//至少要传入方法名
            Method method = cls.getMethod(methodName);
            //2通过方法对象来调用此方法
            method.invoke(obj);//obj.sayHello()

        }
    }
}
